<?php
/**
* @package YARBB
* @copyright Авторские права (C) 2009 www.yar-it.com. Все права защищены.
* @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php
* YARBB! - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL
* Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл copyright.php.
*/

defined( '_JEXEC' ) or die( 'Restricted Access' );

function yarbbBuildRoute(&$query)
{
	JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_yarbb'.DS.'tables');
	$frow = &JTable::getInstance('ybbforum', 'yarbbTable');
	$trow = &JTable::getInstance('ybbtopic', 'yarbbTable');

	$segments = array();
	foreach( $query as $key => $elem ) {
		if( strtolower($key) <> 'option' && strtolower($key) <> 'itemid' && strtolower($key) <> 'start') {
			if( $key == 'forum' && $frow ) {
				if( $frow->load( $elem ) ) {
					$elem  .= '-'. JFilterOutput::stringURLSafe( parse_url_name ( $frow->forum_name ) );
				}
			}
			if( $key == 'topic' && $trow  ) {
				if( $trow->load( $elem ) ) {
					$elem  .= '-' . JFilterOutput::stringURLSafe( parse_url_name ( $trow->post_subject ) );
				}
			}
			if( !in_array(($key .  ':' . $elem), $segments)) {
				$segments[] = $key . ':' . $elem ;
			}
			unset($query[$key]);
		}
	}

	return $segments;
}

function yarbbParseRoute($segments)
{
	$vars = array();

	foreach( $segments as $elem) {
		$sp = explode(':', $elem);
		$sp2 = explode('-',$sp[1]);
		$vars[ $sp[0] ] = $sp2[0];
	}

	return $vars;
}

function parse_url_name($url_name) {
	// транслитерация корректно работает на страницах с любой кодировкой
	// (c)Imbolc http://php.imbolc.name

	$tbl= array(
		'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ж'=>'g', 'з'=>'z',
		'и'=>'i', 'й'=>'y', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p',
		'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f', 'ы'=>'i', 'э'=>'e', 'А'=>'a',
		'Б'=>'b', 'В'=>'v', 'Г'=>'g', 'Д'=>'d', 'Е'=>'e', 'Ж'=>'g', 'З'=>'z', 'И'=>'i',
		'Й'=>'y', 'К'=>'k', 'Л'=>'l', 'М'=>'m', 'Н'=>'n', 'О'=>'o', 'П'=>'p', 'Р'=>'r',
		'С'=>'s', 'Т'=>'t', 'У'=>'u', 'Ф'=>'f', 'Ы'=>'i', 'Э'=>'e', 'ё'=>"yo", 'х'=>"h",
		'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh", 'щ'=>"sh", 'ъ'=>"", 'ь'=>"", 'ю'=>"yu", 'я'=>"ya",
		'Ё'=>"yo", 'Х'=>"h", 'Ц'=>"ts", 'Ч'=>"ch", 'Ш'=>"sh", 'Щ'=>"sh", 'Ъ'=>"", 'Ь'=>"",
		'Ю'=>"yu", 'Я'=>"ya", 'A'=>'a', 'B'=>'b', 'C'=>'c', 'D'=>'d', 'E'=>'e', 'F'=>'f', 
		'G'=>'g', 'H'=>'h', 'I'=>'i', 'J'=>'j', 'K'=>'k', 'L'=>'l', 'M'=>'m', 'N'=>'n', 
		'O'=>'o', 'P'=>'p', 'Q'=>'q', 'R'=>'r', 'S'=>'s', 'T'=>'t', 'U'=>'u', 'V'=>'v', 
		'W'=>'w', 'X'=>'x', 'Y'=>'y', 'Z'=>'z', ','=>"", '?'=>"", '!'=>"", '"'=>"", '@'=>"", 
		'%'=>"", '$'=>"", '#'=>"", ';'=>"", ':'=>"", '&'=>"", '='=>"", '('=>"", ')'=>"", 
		'-'=>"", '+'=>"", '/'=>"", '}'=>"", '{'=>"", ']'=>"", '['=>"", '*'=>"", '`'=>"", 
		'~'=>"", '№'=>""
	);

   return strtr($url_name, $tbl);
   //return JString::str_ireplace($file_name, $tbl);
}

?>
